package cn.net.Stream;
/*本类测试 字符输出流*/
/*  Writer
    FileWriter
    BufferedWriter
 */
import java.io.*;

public class TestOut2 {
    public static void main(String[] args) {
        /*当同时调用两个方法时，优先输出Buffered生成的文件和内容，并且覆盖普通的字符输出流*/
        //m1();//方法一：普通 字符输出流
        m2();  //方法二：高效 字符输出流
    }
    /**高效字符输出流*/
    private static void m2() {//优先级，Buffered。
        //默认状态是不追加,也就是覆盖原有数据；如果不想覆盖输出，保持原内容需加true进行追加
        Writer out = null;
        try {
            out =new BufferedWriter(new FileWriter("D:\\File\\1.txt")) ;//创建对象，生成新文件。加true表追加内容；没有默认覆盖原内容
            out.write(99);//图片若字符流写出成功，无法查看图片。但可以查看其他文本
            out.write(99);
            out.write(99);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                out.close();//释放资源
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

    private static void m1() {
        Writer out = null;
        try {//创建对象，生成新文件//加了true表示后面追加新内容，不会覆盖原内容。刷新一次，后面内容重复增加一次
            /**默认覆盖,如果不想覆盖,就把这个参数的值设置为true，保持原有的数据
             * 在不改变原数据的基础上,在它的末尾添加新数据*/

            out = new FileWriter("D:\\File\\m\\1.txt",true);
            //out = new FileWriter("D:\\File\\m\\1.txt");
            out.write(97);
            out.write(98);
            out.write(99);

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                out.close();//释放资源
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
